Facilitating messaging between a mobile device and a user

ABSTRACT

A method, system and computer program product for instant message communication in a wireless and non-wireless environment. The invented system includes an apparatus that facilitates conversation with individuals not included in the user&#39;s buddy group, non-buddies. The system includes at least one additional routing code reserved for conversing with non-buddies. The first time during a user session that the system receives a message originating from or destined for a non-buddy, before routing the message, the non-buddy&#39;s personal identifier is associated with one of the reserved routing codes. The mobile user can then reply to the message using the same automated ‘reply’ function available for replies to buddies. The non-buddy routing code assignment is only for the duration of a user session. When the mobile user signs off from the system, the routing code becomes available for reassignment.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.10/114,869, filed Apr. 1, 2002, now U.S. Pat. No. 6,760,580 which is acontinuation-in-part of U.S. patent application Ser. No. 09/519,525,filed Mar. 6, 2000 now U.S. Pat. No. 6,714,793.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to non-voice messagetransmission and reception across cellular and public or private datanetworks and, more particularly to a method and system for instantmessage delivery between a cellular and public data network thatfacilitates communication outside of user-defined buddy groups.

2. Description of Related Art

Around the world, tens of millions of users are using software thatenables them to be alerted when friends, family and colleagues goon-line for real-time exchange of messages. A commonly used term forthis type of real-time exchange is instant messaging. Instant messagingis extremely low-cost, with most vendors giving away the product andothers charging nominal licensing fees. It is also powerful, allowingusers to exchange messages in one window without interrupting a task inprogress in another window; for example, looking over a document. Teammembers in different locations can set up impromptu conversations,bouncing ideas and strategies off each other. It provides quick anddirty collaboration, with little to buy and not much to set up.

The best-known instant messaging system is the AMERICA ONLINE® INSTANTMESSENGER® (AIM®) that was originally designed as a feature for AOL®'spay service. AIM is software that anyone with an Internet connection candownload, whether or not he or she is an AOL® (AMERICA ONLINE®)subscriber. After registering a person identifier such as a SCREEN NAME®or a ICQ number, the user can maintain lists of other AIM® users,referred to herein as buddies, and be alerted whenever one of those inthe list comes on-line. When one of those in the list comes on-line, thecorresponding personal identifier appears with an audiovisual alert inan AIM® interface window on the screen. By clicking on the nameappearing in the AIM® interface window, the user may then send aninstant message and initiate a conversation session. Users can also sorttheir buddies into groups. For example, a lawyer could create separategroups for partners, associates, in-house counsel.

Despite the apparent success of instant messaging, it has, until now,been limited to a user accessing the service through computer-basedsystems hardwired to the Internet. A U.S. Patent Application, C. Carey,B. Robinson, Method and system for messaging across cellular networksand a public data network, U.S. patent application Ser. No. 09/519,525(Mar. 6, 2000), the entirety of which is hereby incorporated byreference, describes a system and method for instant messagecommunication in wireless and non-wireless environments; thus extendingthe benefits of instant messaging to wireless environments, such ascellular phone systems. Using this system, an instant messagingsubscriber can send and receive instant messages by means of a mobileunit device, such as a cell phone. Messages received may originate froma computer on a public data network, such as the Internet, or from othermobile unit devices. Furthermore, other instant messaging systems areknown. For example, there are known instant messaging systems that sendand receive messages by means of a command-line interface.

Messaging between the user and buddies is easy and efficient. Sending amessage to a buddy merely requires that the mobile unit user select abuddy from a list of personal identifiers displayed on the userinterface of the mobile unit, compose the message and send it. A meansis provided for the mobile user to reply to an instant message from abuddy quickly and easily, merely requiring the user to select a ‘reply’function.

Messaging between a mobile user and a non-buddy, that is someone not onthe user's BUDDY LIST®, is somewhat more complicated, requiring the userto manually key in the non-buddy's personal identifier for each messagesent from the phone. FIG. 8 provides a message flow diagram between amobile unit 36 and a non-buddy 183. Step 181 illustrates the process ofsending a message to a non-buddy. The system includes an ‘unlisted’function for communicating with non-buddies, having a unique routingcode. The user composes the message 181A, including the non-buddypersonal identifier in the body of the message, followed by a colon anda blank space, and sends it, using the ‘unlisted’ function. Upon receiptby the short message service center 32, the message is forwarded 181B tothe instant message routing system 22. The instant message routingserver captures the non-buddy personal indentifier and forwards themessage to the desired recipient. Step 182 illustrates the process ofsending a message to a mobile unit 36 from a non-buddy 183. As shown at182A, reply to the message may be made only by way of an entirely newmessage, requiring the user to manually key in the non-buddy's personalidentifier correctly and compose the message in an operation identicalto that of 181A. If the personal identifier is incorrectly typed, themessage will be rejected or lost, requiring that the user retype theentire message.

Given the variety of environments in which wireless devices are deployedand the small size of the keypads typically found on wireless devices,such operation is extremely cumbersome and time-consuming. Keying in thepersonal identifier and the message may require the user to key in tensof separate characters. An equally tedious alternative to keying in thepersonal identifier involves the use of the mobile unit's ‘forward’feature. The user edits the received message to leave only the non-buddypersonal identifier of the original message, the reply is composed andthe message is forwarded to the unlisted routing code, requiring themobile user to remember the routing code of the ‘unlisted’ function andkey it in manually. An embedded client (built into the handset of awireless device, for example a Nokia 3390 Gold phone) assigns an indexto all listed names and each unlisted name that is in conversation.Alternately, the unlisted name (unique ID) is associated with theconversation and attached to each reply message.

Other wireless instant messenging systems may use a single routingnumber for all mobile-originated requests. They require the user toenter a command code at the beginning of some or all messages to specifythe action, and enter the ID of the recipient in each message.) An indexis assigned to all listed names and each unlisted name that is inconversation. Alternately, the unlisted name (unique ID) is associatedwith the conversation and attached to each reply message.

It would be a great advantage to provide a method and system formessaging across cellular networks and a public data network thatincluded a feature for easy reply to instant messages from a non-buddy,greatly facilitating instant messaging between a mobile unit user andparties not listed in the user-defined list.

SUMMARY OF THE INVENTION

In a system for instant message communication in a wireless andnon-wireless environment, messages are sent from and received by amobile unit device over a wireless communication network. A registereduser of the instant messaging system creates a list, for example an AIM®BUDDY LIST®, of people with whom the user frequently exchanges instantmessages, by providing the buddies' instant message personalidentifiers. Each instant message personal identifier is associated witha destination address, also known as a routing code, at the instantmessage system. This association is saved in memory in the instantmessage system and conserves phone number addresses in the telephonenetwork. An address loading program is sent through the wirelessenvironment to the mobile unit device of the registered user and loadsthe list, including personal identifiers and the associated routingnumbers into the memory of the mobile unit. When the mobile unit userwishes to send a message to someone on his or her list, the user merelyselects the personal identifier from the displayed list, composes themessage and sends it. When the mobile unit user wishes to reply to amessage received from a sender on the name list, the user merely selectsa ‘reply’ function and the reply is processed by the system inaccordance with the previously saved information.

Within the above system, a method and apparatus for facilitating instantmessaging outside of a user-defined buddy group provides a feature thatallows easy reply to a sender not in the user's buddy group, i.e. a“non-buddy.” The instant messaging system provides at least oneadditional routing code reserved for conversing with non-buddies. Whenthe system receives an instant message for a user from a non-buddy,before routing the message to the user's mobile device, the non-buddy'spersonal identifier is associated with a reserved routing code. Themobile user then may reply to the message using the same ‘reply’function available for replies to buddies. Likewise, when the mobileuser initiates a message to a non-buddy, the system captures thenon-buddy's personal identifier and associates it with a reservedrouting code. Thereafter, the user can reply to messages from thenon-buddy by using an automated ‘reply’ function on the wireless device.The non-buddy routing code assignment is usually only for the durationof a user session, or until reassigned. When the mobile user signs offfrom the system, the routing code becomes available for reassignment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system for instant message communicationin a wireless and non-wireless environment according to the invention;

FIG. 2 is a flow diagram illustrating a process for remotely creating aninstant message name list for a cellular phone according to theinvention;

FIGS. 3-7 are flow diagrams illustrating processes for instant messagefunction delivery, message delivery and instant message reception usinga mobile unit device across a wireless and non-wireless networkaccording to the invention;

FIG. 8 provides a message flow diagram between a mobile unit and anon-buddy according to the invention;

FIG. 9 provides a message flow diagram between a mobile unit andnon-buddy using a non-buddy easy reply feature according to theinvention; and

FIG. 10 shows a table of exemplary routing codes for use by users ofmobile units according to the invention.

DETAILED DESCRIPTION

Described herein are an integrated wireless and traditional instantmessaging system and method. As shown in FIG. 1, the system 20 includesan instant message routing system 22 that includes a routing server 24and a database 26 for storing a profile for each subscribing user. Eachuser profile includes a list of instant message names with each nameassigned to an address (phone number). The routing server 24 is incommunication with one or more short message service centers (SMSC) 32that are in communication with one or more wireless mobile carriers 34.Each wireless mobile carrier 34 supports subscribing users operatingmobile unit devices 36, such as a hand-held cell phone, a two-way pageror other SMS-based device. The routing server 24 is also coupled to apublic or private data network 30, such as the Internet. Also coupled tothe public or private data network 30 are an instant message server 40and one or more traditional systems 42, such as a personal computer.

The communication link between the routing server 24 and the shortmessage service center 32 is also either a public or private datanetwork, such as the Internet or a private dedicated circuit. A protocolresiding over the communication link defines the structure ofinformation communicated between the routing server 24 and the shortmessage service center 32. Preferably, this link is the Internet withTCP/IP operating thereon. Operating over TCP/IP is another protocol thatallows the routing server 24 to identify the effectiveness ofcommunications to the mobile unit devices 36. An example protocolresiding over TCP/IP is the short message peer-to-peer (SMPP) protocolor configuration or data management procedure (CDMP) protocol. Theseprotocols provide visibility of the status of message deliveries to themobile unit devices 36.

A data bearer protocol defines the structure of data messagescommunicated between the mobile unit devices 36, the mobile carrier 34and the short message service center 32. The global system for mobilecommunications (GSM) environment, used as the primary digital wirelessstandard throughout Europe, uses the short message service (SMS)standard data bearer protocol for formatting data for delivery betweenthe mobile unit devices 36, wireless mobile carrier 34 and the shortmessage service center 32. The SMS protocol describes the format ofdata, called SMS packages, sent or received through the system. Theformat of data messages, i.e. SMS package, sent from the mobile unitdevice includes the phone number of the mobile unit device, adestination phone number, the short message service center address(preferably a number), a validity period value and message content. Thevalidity period value informs the short message service center 32 howlong to attempt delivery. Each data message (SMS package) is preferablya single block of information. As can be readily appreciated by those ofordinary skill in the art of wireless communication, the SMS package maybe divided up into multiple packets of data and sent at variousintervals.

FIG. 2 illustrates a method for remotely creating an instant messagename list for a cellular phone. First, a user, who is a subscriber to awireless instant message service, uses a traditional system 42 coupledto the network 30 to sign on to a web site supported or generated by therouting server 24. A user becomes a subscriber by completing aregistration process that can be performed during online communicationwith either servers 24 or 40 or through other means, such as e-mail,conventional mail or telephonic communication. Once the user has enteredinto the routing server's web site by preferably completing a sign-on orlogon with password verification, the user begins instant message namelist creation for the user's mobile unit device 36. If the cell phoneuser knows the instant message name that corresponds to a desiredrecipient, decision block 50, the user enters the instant message name.The entered instant message name is then saved in a look-up table at alocation in the database 26, block 52. The look-up table is stored inrelation to predefined user profile information. Each instant messagename stored in the look-up table has a corresponding destinationaddress, preferably a phone number. For example, the routing server 24receives from the mobile carrier 34 or a telecommunications controllingagency a set of n telephone numbers. In the database 26 for each userprofile, the server 24 associates a number from the set of n telephonenumbers to an entered instant message name. As a result, the routingsystem 22 reuses a limited number of phone numbers.

If the cell phone user does not know the instant message name thatcorresponds to a desired recipient, decision block 50, the user entersinformation that corresponds to the desired recipient, such as an e-mailaddress, block 54. The server hosting the name list creation web sitethen searches for an instant message name that corresponds to theentered information, block 60. If, at decision block 60, there is acorresponding instant message name, the corresponding instant messagename is entered and saved, see block 52 above. If, at decision block 60,the search fails to find a corresponding instant message name, no nameentry occurs and the user is given the opportunity to enter more instantmessage names, decision block 62. The user is also given the opportunityto enter more instant message names after block 52.

If, at decision block 62, the user does not wish to enter more instantmessage names, a program is generated by the server hosting the namelist creation website for programming the created instant message namelist into the user's mobile unit device 36, block 68. Next, at block 70,the generated program is sent through the short message service center32, where it is formatted according to the proper protocol, and thenthrough the mobile carrier 34 to the user's mobile unit device 36. Atblock 72, the user's mobile unit device 36 receives and executes theprogram, thus saving the instant message name list in an address bookstored in memory. In other words, the mobile unit device is programmedin an over-the-air-programming manner to include the instant messagename list within the mobile unit device's instant message listings (i.e.address book).

In an alternative embodiment, if the mobile carrier 34 and correspondingmobile unit devices 36 do not include the hardware or softwarecomponents for receiving and executing the program for loading the savedinstant message name list, the loading of instant message names andcorresponding phone numbers that are stored at the routing system 22 aremanually entered into the address book of the user's mobile unit device36.

FIGS. 3-7 illustrate the process of instant message function delivery,message delivery and instant message reception using a mobile unitdevice across a wireless and non-wireless network. First, at block 80 ofFIG. 3, through a user interface on the mobile unit device 36 the userselects an instant message function or an instant message name(s) fromthe mobile unit device's address book based on the latest stored instantmessage name status information received from the instant message namerouting server 24 as a result of a sign on, a status update or the lastcommunication with the instant message routing server 24 (see FIG. 5below). Then, the user enters message content information (eitherfunction related information or a message accordingly). Alternatively,the message content information is entered first, then an instantmessage function or an instant message name is selected. Next, at block82, the user's selection and entered information is formatted accordingto the predefined protocol and sent to the mobile carrier 34. At block84, the mobile carrier 34 receives the formatted data and sends theformatted data to a short message service center 32 according to theincluded short message service center address information. At decisionblock 86, the short message service center 32 determines if the receivedformatted data includes address data assigned to an instant messagerouting server 24, i.e. an address field or phone number. If theformatted data does not include address data assigned to an instantmessage routing server 24, the formatted data is probably anphone-to-phone short message and is processed according to knowncellular Short Message processing methods, block 88; also commonlyreferred to as email for cell phones. If the formatted data does includeaddress data assigned to an instant message routing server 24, theformatted data is reformatted according to the predefined protocol usedto communicate information between the short message service center 32and the instant message routing server 24 and then sent to the instantmessage routing server 24, block 90.

As shown in FIG. 4, at decision block 102, the instant message routingserver 24 compares the destination number included in the reformatteddata to the look-up table in the user profile location in the database26 that corresponds to the mobile unit device phone number included withthe received data. The comparison determines what action corresponds tothe destination number. If the action corresponding to the destinationnumber is an instant message function, the instant message routingserver 24 executes the instant message function, see FIG. 5 below. Ifthe action corresponding to the destination number is an instant messagename, the instant message routing server 24 repackages the formatteddata as an instant message and sends it to the recipient associated withinstant message name, block 104. Before or after the repackaging occurs,the instant message routing server 24 determines if the recipient thatcorresponds to the instant message name is signed on to the instantmessage system, i.e. the instant message server 40, decision block 106.If the recipient is not signed on, the instant message routing server 24sends a failure message to the user's mobile unit device 36 through theshort message service center 32 and mobile carrier 34, block 108. In afirst alternate embodiment, if the recipient is not signed on, theinstant message server 40 stores the instant message until the instantmessage server 40 detects that the recipient has signed on through aninstant message routing server 24 or a traditional system 42. In asecond alternate embodiment, if the recipient is not signed on, theinstant message is forwarded to a previously designated e-mail address.

If the recipient is signed on, the instant message routing server 24sends the instant message to the recipient through the instant messageserver 40 over the network 30, block 110. The process of sending aninstant message to a mobile unit device recipient is described in moredetail below in FIGS. 6 and 7.

FIG. 5 illustrates the process of processing data received from a mobileunit device 36 that corresponds to an instant message function, from Bof FIG. 4. First, at decision block 120, if the function is a sign onfunction, the instant message routing server 24 establishes a newinstant message session with the instant message server 40 for the userassociated with the mobile unit device 36 that send the sign onfunction. The establishment of a new instant message session is done inaccordance with the proper password(s) that was included in the messagecontent sent from the mobile unit device 36, block 122. The instantmessage routing server 24 checks with instant message server 40 todetermine which of the names in the instant message name list associatedwith the user and stored in the database 26 are available or signed on,block 124. This determination of who is available is then sent to themobile unit device 36 through the short message service center 32 andthe mobile carrier 34, block 126. Once the mobile unit device 36receives the availability determination, the device 36 process it andmakes the availability information available for use by the user, block127.

If the instant message function is not the sign on (sign on) functionand if no instant message session is presently active for the user atthe instant message routing server 24, decision block 128, a messageinforming the user that sign on must occur first is presented, block130. If an instant message session exists and the function is a sign off(sign off) function, decision block 132, the instant message routingserver 24 ends the corresponding instant message session, block 134.However, if the function is not the sign off function, the function isprocessed according to instant message rules, block 136. The followingother functions are available: delete; add; and check status. Withregards to the delete function, the instant message routing server 24deletes each instant message name included in the message content fromthe instant message name list stored with the user's profile informationin the database 26. With regards to the add function, the instantmessage routing server 24 adds each instant message name included in themessage content to the instant message name list stored with the user'sprofile information in the database 26. During instant message sessionthe instant message routing server 24, like an instant message sessionon a traditional system 42, continually receives connection statusinformation of each instant message name in the instant message namelist. With regards to the check status function, the instant messagerouting server 24 sends the latest received connection statusinformation to the mobile user device 36 through the short messageservice center 32 and the mobile carrier 34.

FIGS. 6 and 7 illustrate the process of sending an instant message to arecipient signed on to the instant message service from a mobile unitdevice 36 through an instant message routing server 24. The process ofFIG. 6 occurs when an instant message is sent from another user of amobile unit device 36, C from FIG. 4, or from a user of a traditionalsystem 42, such as a desktop or laptop computer. First, at block 140,the instant message server 40 receives an instant message and, at block142, sends it to the signed on recipient identified in the instantmessage. If, at decision block 144, the recipient is a normal instantmessage recipient, i.e. not a recipient with an instant message sessionactive through the instant message routing server 24, the recipientreceives and views the instant message as per instant messageprocedures, block 146. If, on the other hand, at decision block 144, therecipient is a user with an instant message session active through theinstant message routing server 24, the instant message routing server 24receives the instant message, block 148. Then, at block 150, the instantmessage routing server 24 prepares the received instant messageaccording to the predefined protocol and sends the prepared instantmessage to the short message service center 32, where the short messageservice center 32 stores and forwards the instant message to the mobilecarrier 36 according to the predefined wireless protocol, block 152.

As shown in FIG. 7, at block 160, the mobile carrier 36 prepares theinstant message received from the short message service center 32 fortransmission and sends the prepared transmission to the mobile unitdevice 36. If, at decision block 162, the mobile unit device 36successfully receives the prepared transmission of the instant message,the mobile unit device 36 replies to the short message service center 32that the transmission was received, block 164. Then, at block 166, theshort message service center 32 receives the mobile unit device'ssuccessful reply and deletes the stored instant message.

If, however, at decision block 162, the mobile unit device 36 did notsuccessfully receive the prepared transmission of the instant messageand if, at decision block 168, a transmission delivery threshold has notbeen reached, a message is sent to the short message service center 32that the mobile unit device 36 did not successfully receive the instantmessage, block 170. This message of unsuccessful reception is sent bythe mobile carrier 34. When the short message service center 32 receivesa message of unsuccessful reception, the short message service center 32retrieves the stored instant message that corresponds to theunsuccessfully sent transmission and resends the transmission to themobile unit device 36 through the mobile carrier 34, blocks 172 and 160.

Again, at decision block 162, if the mobile unit device 36 did notsuccessfully receive the prepared transmission of the instant messageand if, at decision block 168, a transmission delivery threshold hasbeen reached, the mobile carrier 34 sends a message to the instantmessage routing server 24 through the short message service center 32that the mobile unit device 36 is not connected or not receiving instantmessages, block 174. When the instant message routing server receives amessage of this type, the instant message routing server 24 signs off orlogs off the mobile unit device 36 that failed to receive thetransmission, block 176. Alternatively, the user may undergo a change ofpresence status, such as “busy” or “unavailable.” The transmissiondelivery threshold is preferably a predefined number of deliveryattempts. Once the number of attempts have been reached or exceeded, themobile carrier 34 assumes the mobile user device 36 is off or out ofreception range. It can be readily appreciated by those of ordinaryskill in the art of cell phone communication, that various data deliverymethods can be used for insuring information gets delivered duringtemporary periods of time when the cell phone is out of communicationwith the mobile carrier. In addition to those functions previouslydescribed, the mobile unit provides at least the following additionalfunctions:

-   -   ‘unlisted;’    -   ‘forward;’ and    -   ‘reply.’

It is noted that ‘unlisted’ is conceptually different from ‘forward’ and‘reply’ in that ‘unlisted’ denotes an instant messaging user class, andthe system function required to interact with that class, whereas‘forward’ and ‘reply’ constitute message manipulation functions builtinto the device itself.

FIGS. 8 and 9 illustrate the flow of messages between mobile units 36and traditional system 42 users who are not identified as preferredfriends of the mobile unit 36 instant messaging user. FIG. 8 depicts themessage flow under existing systems, while FIG. 9 depicts the messageflow in accordance with the invention.

FIG. 8 shows a message flow diagram between a mobile unit 36 and anon-buddy 183 using a conventional system 42. The body of the message181 is explicitly targeted to the non-buddy 183 with the text “NonBudB:”at the beginning of the message, as seen in 181A. The message 181Atravels from the mobile unit 36 to the short message service center(SMS-C) 32, such that the Destination Address of 4654 is not analyzeduntil received by the short message service center 32. The short messageservice center 32 recognizes that the destination address belongs to thefamily of addresses for instant messaging and the message 181B isforwarded to the instant message routing system 22. The instant messagerouting system 22 reformats the message by extracting the non-buddy'sinstant message address of “NonBudB” and forwards the reformattedmessage 181C to the traditional system 42, either directly or throughthe instant messenger server 40.

The messages in 182 indicate the process in reverse of 181, wherein atraditional system 42 non-buddy 183 sends a message 182A to mobile unit36 by addressing the message to “PhoneA” as a normal instant message.The instant message routing system 22 reformats the message 182B byprefixing the non-buddy's instant message address “NonBudB” to themessage body, also by attaching the telephone number of “PhoneA” whichin this example is 12345678901, and forwards the reformatted message182C to the short message service center 32. The short message servicecenter 32 stores the message and attempts delivery. For the purposes ofFIG. 8 the message is delivered to the mobile unit 36. The mobile unit36 presents the message to the user. For the mobile unit 36 to send amessage back to non-buddy 183, the entire process of 181 is repeated,including the re-entering of the traditional system 42 personalidentifier.

The instant message routing system 22 reformats the message 182B byprefixing the non-buddy's instant message address “NonBudB” to themessage body, also by attaching the telephone number of “PhoneA” whichin this example is 12345678901, and forwards the reformatted message182C to the short message service center 32.

In accordance with the invention, FIG. 9 shows a message flow diagrambetween a mobile unit 36 and a non-buddy in which message flow isfaciliated by a non-buddy easy reply feature. Step 191 illustrates theprocess of sending a message to the non-buddy from the mobile unit. Asin 181A, The user composes the message 191A, including the non-buddypersonal identifier in the body of the message, followed by a colon anda blank space, and sends it, using the ‘unlisted’ function. The messageis received at the short message service center 32 and forwarded 191B tothe instant message routing system 22. The instant message routingsystem provides at least one routing code reserved for the non-buddyeasy reply feature, denoted in FIG. 9 by the code ‘4561’ Upon receipt ofthe message, the instant message routing server 24 captures thenon-buddy's name from the body of the message and assigns an easy-replyrouting code, e.g. ‘4561.’ Subsequently, the message is forwarded 191Cto its destination, non-buddy NonBudB183. In an optional step 192, theinstant message routing server 24 returns a notification of theeasy-reply routing code assignment to the mobile unit 36 to aid insubsequent messaging.

In an alternative emobidment, the ‘unlisted’ routing code becomesassociated with a non-buddy, for easy-reply, until a second non-buddyexchange is started. This association can be automatically reset by aperiod of inactivity.

As step 193 shows, when the non-buddy 183 is the first to send amessage, the instant message routing server 24 immediately assigns aneasy-reply routing code, whereupon the mobile unit 36 and the non-buddy183 are able to exchange messages readily and efficiently, as shown instep 194, with no greater effort than required of two SMS phone users.

One can easily imagine a second non-buddy 195 sending a message to themobile user 36 during a conversation with the first non-buddy 183,creating a race condition. In the event that the available routing codeshave all been assigned when the system receives the message from thesecond non-buddy, the system recycles routing codes. Thus, a situationmay occur in which the mobile user has sent a message using aneasy-reply routing code, but the code is reassigned before the messagereaches the instant message routing server, with the result that thenon-buddy the code has been reassigned to receives the message intendedfor the first non-buddy. Because experience shows that a mobile usertypically starts a non-buddy conversation approximately once in atwelve-hour period, the possibility of a race condition occurring isslight. Nevertheless, the possibility of a race condition occurring isminimized in one or both of two ways:

-   -   The instant messaging server can hold the non-buddy message        pending confirmation of the mobile user's interest in receiving        the message; and    -   A bank of easy reply routing codes are provisioned, minimizing        the possibility that the system will be faced with the necessity        of recycling routing codes during a user session.

Easy reply routing code assignments usually persist only for theduration of a user session, or until reassignment, for example whenthere are more buddies than routing codes. When the mobile user signsoff from the system, the routing code becomes available forreassignment. An embodiment is also possible in which routing codeassignments survive logoff.

FIG. 10 provides a table of exemplary routing codes. As previouslyexplained, the invention uses such codes for messaging with non-buddies,as well as for messaging with buddies, and system commands.

In an alternative embodiment, the wireless instant messaging system mayuse a single routing number for all mobile-originated requests, and thenassign another routing number for each sender in the manner describedabove to simplify the exchange of further messages.

The invention is embodied as a method, an apparatus and a computerprogram product, comprising a tangible medium with computer-readablecode embodied thereon. Implementation of the invention is accomplishedby means of conventional methods of computer programming using one ormore commonly known programming languages.

Although the invention has been described herein with reference tocertain preferred embodiments, one skilled in the art will readilyappreciate that other applications may be substituted for those setforth herein without departing from the spirit and scope of the presentinvention. Accordingly, the invention should only be limited by theClaims included below.

1. A method of facilitating messaging between a mobile device and asender, the method comprising steps of: providing a plurality ofreserved routing codes for exchanging messages between senders andmobile devices; in response to receiving a message from the senderdirected to the mobile device, temporarily associating one of therouting codes with the sender, said associating of said routing codepersisting until reassignment of said routing code; including thetemporarily associated routing code in a reply message as a replyaddress; and transmitting the reply message with the includedtemporarily associated routing code to the mobile device; the methodfurther comprising the steps of: composing a message for the sender atsaid mobile device, said message including at least said sender'spersonal identifier in body of said message; sending said message to arouting code assigned to an ‘unlisted’ function on said mobile device;receiving said message at an instant messaging system; capturing saidsender's personal identifier by said instant messaging system;temporarily assigning a routing code from said plurality of reservedrouting codes to said sender's personal identifier by said instantmessaging system, said assigning of said routing code persisting untilreassignment of said routing code; sending said message to said sender;and returning notice of said assignment to said mobile device.
 2. Themethod of claim 1, further comprising: receiving a reply message fromthe mobile device directed to the temporarily associated routing code;and transmitting the reply message to the sender.
 3. The method of claim2, wherein said messages comprise instant messages.
 4. The method ofclaim 2, further comprising steps of: sending a message to said mobiledevice by said sender; receiving said message at said instant messagingsystem; capturing said sender's personal identifier by an instantmessaging system; assigning a routing code to said sender's personalidentifier; and sending said message to said mobile device.
 5. Themethod of claim 2, wherein said step of transmitting the reply messageto the sender comprises steps of: receiving a message at said mobiledevice from said sender, wherein said sender's personal identifier haspreviously been associated with a routing code; and replying to saidreceived message by means of a ‘reply’ function on said mobile device.6. The method of claim 2, wherein routing codes for assignment arerecycled during a user session on said mobile device if the number ofsenders exceeds the routing codes available.
 7. The method of claim 2,further comprising the step of: preventing occurrence of a conditionwherein different senders are associated with the same routing code. 8.The method of claim 7, wherein said step of preventing comprises any ofthe steps of: delaying delivery of a message from said sender pendingconfirmation of a mobile user's desire to receive said message; andproviding sufficient routing codes that recycling of codes is unlikelyto be necessary.
 9. A computer program product, said computer programproduct comprising a tangible medium with computer-readable codeembodied thereon said computer-readable code including code means forperforming the steps of a method of facilitating messaging between amobile device and a sender the method comprising the steps of: providinga plurality of reserved routing codes for exchanging messages betweensenders and mobile devices; in response to receiving a message from thesender directed to the mobile device, temporarily associating one of therouting codes with the sender, said associating of said routing codepersisting until reassignment of said routing code; including thetemporarily associated routing code in the message as a reply address;and transmitting the message with the included temporarily associatedrouting codes to the mobile device; the method further comprising thesteps of: composing a message for said sender at said mobile device,said message including at least said sender's personal identifier inbody of said message; sending said message to a routing code assigned toan ‘unlisted’ function on said mobile device; receiving said message atan instant messaging system; capturing said sender's personal identifierby said instant messaging system; temporarily assigning a routing codefrom said plurality of reserved routing codes to said sender's personalidentifier by said instant messaging system, said assigning of saidrouting code persisting until said routing code is reassigned; sendingsaid message to said sender; and returning notice of said assignment tosaid mobile device.
 10. The computer program product of claim 9, themethod further comprising: receiving a reply message from the mobiledevice directed to the temporarily associated routing code; andtransmitting the reply message to the sender.
 11. The computer programproduct of claim 10, wherein said messages comprise instant messages.12. The computer program product of claim 10, said method furthercomprising steps of: sending a message to said mobile device by saidsender; receiving said message at said instant messaging system;capturing said sender's personal identifier by an instant messagingsystem; assigning a routing code to said sender's personal identifier;and sending said message to said mobile device.
 13. The computer programproduct of claim 10, wherein said step of transmitting the reply messageto the sender comprises steps of: receiving a message at said mobileunit from said sender, wherein said sender's personal identifier haspreviously been associated with a routing code; and replying to saidreceived message by means of a ‘reply’ function on said mobile device.14. The computer program product of claim 10, wherein routing codes forassignment are recycled during a user session on said mobile device ifthe number of senders exceeds the routing codes available.
 15. Thecomputer program product of claim 10, said method further comprising thestep of: preventing occurrence of a condition wherein different sendersare associated with the same routing code.
 16. The computer programproduct of claim 15, wherein said step of preventing comprises any ofthe steps of: delaying delivery of a message from said sender pendingconfirmation of a mobile user's desire to receive said message; andproviding sufficient routing codes that recycling of codes is unlikelyto be necessary.
 17. An apparatus for facilitating messaging between amobile device and a sender comprising: a plurality of reserved routingcodes for exchanging messages between senders and mobile devices; inresponse to receiving a message from the sender directed to the mobiledevice, temporarily associating one of the routing codes with thesender, said associating of said routing code persisting until saidrouting code is reassigned; means for including the temporarilyassociated routing code in the message as a reply address; andtransmitting the message with the included temporarily associatedrouting codes to the mobile device; the apparatus further comprisingmeans for: composing a message for said sender at said mobile device,said message including said sender's personal identifier in body of saidmessage; sending said message to a routing code assigned to an‘unlisted’ function on said mobile device; receiving said message at aninstant messaging system; capturing said sender's personal identifier bysaid instant messaging system; temporarily assigning a routing code fromsaid plurality of reserved routing codes to said sender's personalidentifier by said instant messaging system, said assigning of saidrouting code persisting until said routing code is reassigned; sendingsaid message to said sender; and returning notice of said assignment tosaid mobile device.
 18. The apparatus of claim 17, further comprising:means for receiving a reply message from the mobile device directed tothe temporarily associated routing code; and means for transmitting thereply message to the sender.
 19. The apparatus of claim 18, wherein saidmessages comprise instant messages.
 20. The apparatus of claim 18,wherein said means for exchanging messages comprises means for: sendinga message to said mobile device by said sender; receiving said messageat said instant messaging system; capturing said sender's personalidentifier by said instant messaging system; assigning a routing code tosaid sender's personal identifier; and sending said message to saidmobile device.
 21. The apparatus of claim 18, wherein said means fortransmitting the reply message to the sender comprises means for:receiving a message at said mobile unit from said sender, wherein saidsender's personal identifier has previously been associated with arouting code; and replying to said received message by means of a‘reply’ function on said mobile device.
 22. The apparatus of claim 18,wherein routing codes for assignment are recycled during a user sessionon said mobile device if the number of users exceeds the routing codesavailable.
 23. The apparatus of claim 18, further comprising means for:preventing occurrence of a condition wherein different senders areassociated with the same routing code.
 24. The apparatus of claim 18,wherein said means for preventing comprises means for any of: delayingdelivery of a message from a sender pending confirmation of a mobileuser's desire to receive said message; and providing sufficient routingcodes for assignment that recycling of codes is unlikely to benecessary.